﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace TriageQueueSystem.InterfacesImplementation
{
    public interface IHttpHelper
    {
        /// <summary>
        /// 使用GET方法访问API接口
        /// </summary>
        /// <param name="url">路由地址</param>
        /// <returns></returns>
        string HttpGet(string url);

        /// <summary>
        /// 使用POST方法访问API接口
        /// </summary>
        /// <param name="url">路由地址</param>
        /// <param name="param">参数（由JSON序列化后的参数）</param>
        /// <returns></returns>
        string HttpPost(string url, string param);

        /// <summary>
        /// 使用POST方法访问API接口
        /// </summary>
        /// <param name="url">路由地址</param>
        /// <param name="param">参数（使用1=1方式的参数）</param>
        /// <remarks>暂时使用一个参数时使用该方法，多个参数时推荐使用JSON方式</remarks>
        /// <returns></returns>
        string HttpPostForManyParam(string url, string param);

        /// <summary>
        /// 使用GET异步方法访问API接口
        /// </summary>
        /// <param name="url">路由地址</param>
        /// <returns></returns>
        Task<string> HttpGetAsync(string url);

        /// <summary>
        /// 使用POST异步方法访问API接口
        /// </summary>
        /// <param name="url">路由地址</param>
        /// <param name="param">参数（由JSON序列化后的参数）</param>
        /// /// <returns></returns>
        Task<string> HttpPostAsync(string url, string param);

        /// <summary>
        /// 使用POST异步方法访问API接口
        /// </summary>
        /// <param name="param">参数（使用1=1方式的参数）</param>
        /// <remarks>暂时使用一个参数时使用该方法，多个参数时推荐使用JSON方式</remarks>
        /// <returns></returns>
        Task<string> HttpPostForManyParamAsync(string url, string param);
    }
}
